package com.vhans.db.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.vhans.core.domain.CMsg;
import com.vhans.db.model.dto.ConditionDTO;
import com.vhans.db.model.vo.msg.MsgInfoVO;
import com.vhans.db.model.vo.msg.MsgVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 用户聊天信息Mapper接口
 *
 * @author vhans
 * @date 2023-05-21
 */
@Repository
public interface CMsgMapper extends BaseMapper<CMsg> {

    /**
     * 查询用户聊天信息列表
     *
     * @param condition 查询条件
     * @return 用户聊天信息集合
     */
    List<MsgVO> selectMsgVOList(@Param("condition") ConditionDTO condition);

    /**
     * 通过主键查询用户聊天信息信息
     *
     * @param id 用户聊天信息ID
     * @return 结果
     */
    MsgInfoVO selectMsgInfoById(Integer id);

    /**
     * 查询两个用户之间的聊天记录
     *
     * @param mId 主用户Id
     * @param yId 从用户Id
     * @return 聊天记录
     */
    List<MsgVO> getRecentMsg(@Param("mId") Integer mId, @Param("yId") Integer yId);

    /**
     * 获取未读消息数
     */
    Integer getUnread(@Param("roomId") String roomId);

}
